package nespresso.servlets;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.*;

import nespresso.beans.Base;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import org.json.simple.*;

public class DoublonloginServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;
	private Log log; 
	
	public DoublonloginServlet() {
		log = LogFactory.getLog(DoublonloginServlet.class);
	}
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		/*
		 * si l'utilisateur tape l'adresse de la servlet directement dans la barre d'adresse, il est renvoyé
		 * sur la page d'accueil !
		 */
		doPost(request, response);
	}
	
	@SuppressWarnings({ "unused", "unchecked" })
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		HttpSession session = request.getSession(); // On r�cup�re la session en cours
		String login = new String(request.getParameter("login"));
		String param = new String();
		
		Base bu = new Base();
		JSONArray jsres = new JSONArray(); //Tableau JSON pour la réponse : ["login", true/false, "message d'erreur"]

		jsres.add("login"); // 1er champ : le nom du champ = "login"
		
		if(bu.IsPresent("USERS", "login", login, 0)) jsres.add(new Boolean(false)); // Login trouvé => on met false
		else jsres.add(new Boolean(true)); // Login non trouvé => on met true
		bu.Free();
		
	    response.setContentType("application/json"); //On dit que l'on renvoie du format JSON
	    response.setCharacterEncoding("UTF-8"); // Ca, on s'en tape, mais les exemples le mettent
	    PrintWriter writer = response.getWriter(); // On initialise l'écriture de la sortie qui sera récupérée par l'appelant

	    try {
	        writer.println(jsres); // On écrit la phrase JSON
	        log.info("Retour JSON : " + jsres);
	    } catch(Exception e){
	    	log.error("Erreur lors du transfert JSON : " + e.getMessage());
	    } finally {
	        writer.close(); // On ferme le canal d'écriture
	    }
	}
}
